const { username, password, role } = req.body; // 从请求体中获取角色

if (!username || !password) {
  return res.status(400).json({ message: '用户名和密码不能为空' });
}

const user = await db.get('SELECT * FROM users WHERE username = ?', [username]);

if (!user) {
  return res.status(401).json({ message: '用户名或密码错误' });
}

const isMatch = await bcrypt.compare(password, user.password);

if (!isMatch) {
  return res.status(401).json({ message: '用户名或密码错误' });
}

// 验证用户角色
if (role && user.role !== role) {
  return res.status(403).json({ message: '您没有权限以该角色登录' });
}

const token = jwt.sign(
  { id: user.id, username: user.username, role: user.role },
  process.env.JWT_SECRET,
  { expiresIn: '24h' }
);

res.json({ token, user: { id: user.id, username: user.username, role: user.role } }); 